package com.xuecheng.media.service;

import com.xuecheng.commons.model.dto.*;
import com.xuecheng.commons.model.vo.ResponseResult;
import com.xuecheng.media.domain.Media;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * <p>
 * 媒资信息 服务类
 * </p>
 *
 * @author HuangYuwu
 * @since 2022-09-12
 */
public interface MediaService extends IService<Media> {

    /**
     * 获取阿里云上传token
     * @param vodUploadDto
     * @return
     */
    ResponseResult vodTokenMedia(VodUploadDto vodUploadDto) throws Exception;

    /**
     * 刷新阿里云上传token
     * @param videoId
     * @return
     */
    ResponseResult refreshvodTokenMedia(String videoId) throws Exception;

    /**
     * 保存媒资信息
     * @param mediaDto
     * @return
     */
    ResponseResult saveMedia(MediaDto mediaDto) throws Exception;

    /**
     * 分页查询媒资信息
     * @param pageRequest
     * @param mediaQueryDto
     * @return
     */
    ResponseResult findMedia(PageRequest pageRequest, MediaQueryDto mediaQueryDto);

    /**
     * 根据媒资id获取播放连接
     * @param mediaId
     * @return
     */
    ResponseResult previewMedia(Long mediaId) throws Exception;

    /**
     * 根据id删除媒资信息
     * @param mediaId
     * @return
     */
    ResponseResult deleteMedia(Long mediaId) throws Exception;

    /**
     * 媒资审核
     * @param mediaAuditDto
     * @return
     */
    ResponseResult auditMedia(MediaAuditDto mediaAuditDto);

    /**
     * 根据id查询媒资信息
     * @param mediaId
     * @return
     */
    ResponseResult findMediaById(Long mediaId) throws Exception;

    ResponseResult findMediaUrl(Long mediaId) throws Exception;
}
